package com.manxi.mall.bean;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 电商订单实体类
 * @author addroc
 * @date 2024/6/14
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TradeOrder {
    // 订单ID
    private String orderId;
    
    // 用户ID
    private String userId;
    
    // 用户姓名
    private String userName;
    
    // 订单总金额
    private BigDecimal totalAmount;
    
    // 实付金额
    private BigDecimal payAmount;
    
    // 优惠金额
    private BigDecimal couponAmount;
    
    // 运费
    private BigDecimal postFee;
    
    // 支付方式 (1: 微信, 2: 支付宝, 3: 银联, 4: 货到付款)
    private Integer payType;
    
    // 支付状态 (0: 未支付, 1: 已支付, 2: 已退款)
    private Integer payStatus;
    
    // 订单状态 (0: 待付款, 1: 待发货, 2: 已发货, 3: 已完成, 4: 已取消, 5: 售后中)
    private Integer orderStatus;
    
    // 收货人姓名
    private String receiverName;
    
    // 收货人电话
    private String receiverPhone;
    
    // 收货地址
    private String receiverAddress;
    
    // 省份ID
    private String provinceId;
    
    // 省份名称
    private String provinceName;
    
    // 城市ID
    private String cityId;
    
    // 城市名称
    private String cityName;
    
    // 区/县ID
    private String districtId;
    
    // 区/县名称
    private String districtName;
    
    // 下单时间
    private Date createTime;
    
    // 支付时间
    private Date payTime;
    
    // 发货时间
    private Date deliveryTime;
    
    // 收货时间
    private Date receiveTime;
    
    // 评价时间
    private Date commentTime;
    
    // 订单备注
    private String orderComment;
    
    // 订单来源 (0: PC, 1: APP, 2: 微信小程序, 3: 手机H5)
    private Integer sourceType;
    
    // 物流单号
    private String trackingNo;
    
    // 物流公司编码
    private String logisticsCode;
    
    // 物流公司名称
    private String logisticsName;
    
    // 订单商品列表
    private List<TradeOrderItem> orderItems;
}